#ifndef GAME_HEADER
#define GAME_HEADER

#include "Map.h"

#include <string>
#include <vector>

class Game 
{
public:
	static Game* getInstance();
	static void destroyInstance();

	// initialize the game
	bool init(int argc, char **argv, const std::string& playerName1, const std::string& playerName2);
	bool loadMap(const char *mapName);

	// play game
	void playGame();
	void dungeonOver(const std::string& reason, bool win);

	void update();
	void drawGame() const;

private:
	static Game* game;
	Game() {}

	Map map;
	bool dungeonEnded;
	bool success;

	// Variables to keep track of the state of the game.
	int mapCount;
	std::vector<std::string> mapNames;
	int currentMap;

	std::string playerName1, playerName2;
};

#endif